package com.sunyur.tailor.channel.common.middle.util;

import cn.hutool.core.bean.BeanUtil;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @Description javabean拷贝，list拷贝，工具类
 * @Author XuHui
 * @Date 2021/12/31 11:14
 * @Version 1.0
 */

public class BeanCopyUtil {

    /**
     * 实体类拷贝
     * @param source 数据源
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T copy(Object source, Class<T> clazz) {
        return BeanUtil.toBean(source, clazz);
    }

    /**
     * 集合数据的拷贝
     * @param sources: 数据源
     * @param clazz:
     * @return
     */
    public static <S, T> List<T> copyList(List<S> sources, Class<T> clazz) {
        return sources
            .stream()
            .map((S s) -> BeanUtil.toBean(s, clazz))
            .collect(Collectors.toList());
    }
}